Multiple approaches to booting from more than one storage device and for selecting one of a plurality of operating systems are known.
Systems often use boot.ini and the boot configuration data base. Microsoft has created a detailed document showing how the boot configuration data base is architected and edited as BCD objects.
The capability of computer systems to boot from more than one storage device or the ability to boot a selected operating system from a number of operating systems has been present for quite some time. Windows NT™ operating systems have been in the field since 1993 and have had multi-boot capability.
NT systems from NT 3.1 through NT 5.2 released in 2007 have typically used a boot preference file named boot.ini. This file if present is read by an early load portion of NT and processed. The file typically contains the ID and address of each partition and sub-folder in the partition that houses or contains an operating system, and the identity of a default operating system, and a timer value which states in seconds the amount of time the information will be displayed to a user before the default operating system will be booted.
Sophisticated users can edit the boot.ini file and change the default operating system to be booted and/or add or remove operating systems. See FIGS. 2A and 2B for examples of boot.ini files.
Starting with Windows™ NT 6 released in 2006, the boot.ini file was discarded and a new facility with increased capability called Boot Configuration Data base (BCD) was introduced to control the booting of a system.
The BCD provides a firmware-independent mechanism for manipulating boot environment data for typically for Windows VistaTMand later operating systems. Windows VistaTMand later versions of WindowsTMuse it to load the operating system or to run boot applications such as memory diagnostics. The BCD abstracts the underlying firmware. BCD currently supports both PC/AT BIOS and Extensible Firmware Interface (EFI) systems. BCD interfaces perform all necessary interaction with firmware.
The BCD allows developers to programmatically manipulate a BCD store or objects through the BCD WMI provider. The WMI provider supports a unified programming interface that can be used for both local and remote management of BCD stores. The interface is independent of the underlying firmware, so developers can write one application that works on any type of system.
The reference manual for the BCD facility is available at the microsoft dot com website and is incorporated by reference herein.
The manual describes the exact interface and how objects within the BCD are manipulated.
Additionally, if the operating system on the system drive becomes non-operational, and even if the user has a bootable backup storage device attached to the computer system, it can be a daunting task to use that backup as the primary bootable storage device. Until now, the user typically needed to change the BIOS settings to boot the backup storage device or remove the backup drive from its enclosure and install it into the computer system.